#ifndef CURSO_H_
#define CURSO_H_

#include <string>
#include <map>
#include "Clase.h"
#include "Socket.h"

class Curso {
	unsigned int codigo;
	bool fin_curso;
	std::string clave;
	std::string periodo;
 	std::string descripcion;
 	// Clases q contiene el curso
	std::map<unsigned int, Clase*> clases;
	std::list<std::string> alumnos_inscriptos;
	std::list<Socket*> sockets_AV;

public:
	Clase* getClase(const unsigned int codClase);
	std::map<unsigned int, Clase*> getClases();
	Curso(unsigned int codigo, std::string descripcion);
	bool buscarClase(unsigned int codClase);
	int	inscribirAlumno(std::string nombre_usuario, Socket* socket_alumno_av);
	virtual ~Curso();
	void agregarSocketsAlumnos(Socket *socket_av);
	void agregarSocketsInstructor(Socket *socket_av);
	void AgregarClase(unsigned int codClase, Clase* clase);
	void iniciarClase(const unsigned int codClase);
	void finalizarCurso();
	bool buscarAlumno(std::string nombre_alumno);
	unsigned int getCodigo();
	std::string getDescripcion();
};

#endif
